package com.relanet.dao;

import java.util.List;

import com.relanet.model.NlpUser;

import weibo4j.http.AccessToken;


/**
 * 用户表操作类
 * @author buzc
 * @since 2011-9-26
 */
public interface INlpUserDao {
	public static final String table_name = "nlp_user";
	public static final String id = "id"; // 系统用户ID
	public static final String nickname = "nickname"; // 昵称
	public static final String first_login = "first_login"; // 首次登录时间
	public static final String login_count = "login_count"; // 用户登录次数
	public static final String isregister = "isregister"; // 标识是否为注册用户 0-注册用户 1-新浪用户 2-未登录系统用户 
	public static final String sina_uid = "sina_uid"; // 新浪用户ID
	public static final String access_token = "access_token"; // 授权后得到访问API的token
	public static final String token_secret = "token_secret"; // API服务器生成的加密串
	public static final String domain_name = "domain_name"; // 用户设置的个性化域名
	public static final String max_notice_time = "max_notice_time"; // 用户最后一次阅读的起效的最新通知的时间戳
	public static final String followers_count = "followers_count"; // 用户的粉丝数，每次登录时更新
	
	/**
	 * 用户通过授权后，注册到系统中
	 * @param user
	 * @return
	 */
	public boolean register(NlpUser user);

	/**
	 * 通过用户系统ID获取用户
	 * @param id
	 * @return
	 */
	public NlpUser getById(long id);
	
	/**
	 * 通过用户SINA_ID获取用户
	 * @param sina_id
	 * @return
	 */
	public NlpUser getBySinaId(long sina_id);
	
	/**
	 * 更新用户信息
	 * @param user
	 * @return
	 */
	public boolean update(NlpUser user);
	
	/**
	 * 通过AccessToken获取用户
	 * @param access
	 * @return
	 */
	public NlpUser getByAccessToken(AccessToken access);
	
	/**
	 * 获取用户列表
	 * @return
	 */
	public List<NlpUser> getUserList();
	
	/**
	 * 根据用户ID删除用户
	 * @param id
	 * @return
	 */
	public boolean deleteById(long id);
}
